home *** CD-ROM | disk | FTP | other *** search
/ Micromanía: 150 Juegos 2010 / 150Juegos_16.iso / Shareware / Shape Smash / shape-smash.swf / scripts / mochi / as3 / MochiServices.as < prev    next >
Encoding:
Text File  |  2010-05-14  |  26.2 KB  |  834 lines

  1. package mochi.as3
  2. {
  3.    import flash.display.DisplayObject;
  4.    import flash.display.DisplayObjectContainer;
  5.    import flash.display.Loader;
  6.    import flash.display.MovieClip;
  7.    import flash.display.Sprite;
  8.    import flash.events.Event;
  9.    import flash.events.IOErrorEvent;
  10.    import flash.events.TimerEvent;
  11.    import flash.geom.Rectangle;
  12.    import flash.net.LocalConnection;
  13.    import flash.net.URLRequest;
  14.    import flash.net.URLVariables;
  15.    import flash.system.Capabilities;
  16.    import flash.system.Security;
  17.    import flash.utils.ByteArray;
  18.    import flash.utils.Endian;
  19.    import flash.utils.Timer;
  20.    
  21.    public class MochiServices
  22.    {
  23.       private static var _container:Object;
  24.       
  25.       private static var _swfVersion:String;
  26.       
  27.       private static var _preserved:Object;
  28.       
  29.       private static var _sendChannel:LocalConnection;
  30.       
  31.       private static var _clip:MovieClip;
  32.       
  33.       private static var _id:String;
  34.       
  35.       private static var _timer:Timer;
  36.       
  37.       private static var _sendChannelName:String;
  38.       
  39.       private static var _loader:Loader;
  40.       
  41.       private static var _mochiLocalConnection:MovieClip;
  42.       
  43.       public static var onError:Object;
  44.       
  45.       private static var _servURL:String = "http://www.mochiads.com/static/lib/services/";
  46.       
  47.       private static var _services:String = "services.swf";
  48.       
  49.       private static var _mochiLC:String = "MochiLC.swf";
  50.       
  51.       private static var _listenChannelName:String = "__ms_";
  52.       
  53.       private static var _connecting:Boolean = false;
  54.       
  55.       private static var _connected:Boolean = false;
  56.       
  57.       public static var netup:Boolean = true;
  58.       
  59.       public static var netupAttempted:Boolean = false;
  60.       
  61.       public static var widget:Boolean = false;
  62.       
  63.       public static var servicesSync:MochiSync = new MochiSync();
  64.       
  65.       public function MochiServices()
  66.       {
  67.          super();
  68.       }
  69.       
  70.       public static function _rm99() : String
  71.       {
  72.          return "3.2 as3";
  73.       }
  74.       
  75.       public static function get _et396() : Object
  76.       {
  77.          return _clip;
  78.       }
  79.       
  80.       private static function flush(param1:Boolean) : void
  81.       {
  82.          var _loc2_:Object = null;
  83.          var _loc3_:Object = null;
  84.          if(Boolean(_clip) && Boolean(_clip._queue))
  85.          {
  86.             while(_clip._queue.length > 0)
  87.             {
  88.                _loc2_ = _clip._queue.shift();
  89.                _loc3_ = null;
  90.                if(_loc2_ != null)
  91.                {
  92.                   if(_loc2_.callbackID != null)
  93.                   {
  94.                      _loc3_ = _clip._callbacks[_loc2_.callbackID];
  95.                   }
  96.                   delete _clip._callbacks[_loc2_.callbackID];
  97.                   if(param1 && _loc3_ != null)
  98.                   {
  99.                      handleError(_loc2_.args,_loc3_.callbackObject,_loc3_.callbackMethod);
  100.                   }
  101.                }
  102.             }
  103.          }
  104.       }
  105.       
  106.       private static function _xl60() : void
  107.       {
  108.          _mochiLocalConnection.connect(_listenChannelName);
  109.          _clip.handshake = function(param1:Object):void
  110.          {
  111.             MochiServices._ty219 = param1.newChannel;
  112.          };
  113.          trace("Waiting for MochiAds services to connect...");
  114.       }
  115.       
  116.       public static function send(param1:String, param2:Object = null, param3:Object = null, param4:Object = null) : void
  117.       {
  118.          if(_connected)
  119.          {
  120.             _mochiLocalConnection.send(_sendChannelName,"onReceive",{
  121.                "methodName":param1,
  122.                "args":param2,
  123.                "callbackID":_clip._nextcallbackID
  124.             });
  125.          }
  126.          else
  127.          {
  128.             if(_clip == null || !_connecting)
  129.             {
  130.                trace("Error: MochiServices not connected.   Please call MochiServices.connect().  Function: " + param1);
  131.                handleError(param2,param3,param4);
  132.                flush(true);
  133.                return;
  134.             }
  135.             _clip._queue.push({
  136.                "methodName":param1,
  137.                "args":param2,
  138.                "callbackID":_clip._nextcallbackID
  139.             });
  140.          }
  141.          if(_clip != null)
  142.          {
  143.             if(_clip._callbacks != null && _clip._nextcallbackID != null)
  144.             {
  145.                _clip._callbacks[_clip._nextcallbackID] = {
  146.                   "callbackObject":param3,
  147.                   "callbackMethod":param4
  148.                };
  149.                ++_clip._nextcallbackID;
  150.             }
  151.          }
  152.       }
  153.       
  154.       public static function get _cn696() : Object
  155.       {
  156.          return _container;
  157.       }
  158.       
  159.       public static function _aa325() : Boolean
  160.       {
  161.          return Security.sandboxType != "localWithFile";
  162.       }
  163.       
  164.       public static function get connected() : Boolean
  165.       {
  166.          return _connected;
  167.       }
  168.       
  169.       private static function init(param1:String, param2:Object) : void
  170.       {
  171.          _id = param1;
  172.          if(param2 != null)
  173.          {
  174.             _container = param2;
  175.             _dm577(param1,_container);
  176.          }
  177.       }
  178.       
  179.       public static function _cl199(param1:String, param2:Boolean) : void
  180.       {
  181.          var _loc3_:Number = NaN;
  182.          param1 = param1.toLowerCase();
  183.          if(param1.length != 16)
  184.          {
  185.             trace("WARNING: " + (param2 ? "board" : "game") + " ID is not the appropriate length");
  186.             return;
  187.          }
  188.          if(param1 == "1e113c7239048b3f")
  189.          {
  190.             if(param2)
  191.             {
  192.                trace("WARNING: Using testing board ID");
  193.             }
  194.             else
  195.             {
  196.                trace("WARNING: Using testing board ID as game ID");
  197.             }
  198.             return;
  199.          }
  200.          if(param1 == "84993a1de4031cd8")
  201.          {
  202.             if(param2)
  203.             {
  204.                trace("WARNING: Using testing game ID as board ID");
  205.             }
  206.             else
  207.             {
  208.                trace("WARNING: Using testing game ID");
  209.             }
  210.             return;
  211.          }
  212.          _loc3_ = 0;
  213.          while(_loc3_ < param1.length)
  214.          {
  215.             switch(param1.charAt(_loc3_))
  216.             {
  217.                case "0":
  218.                case "1":
  219.                case "2":
  220.                case "3":
  221.                case "4":
  222.                case "5":
  223.                case "6":
  224.                case "7":
  225.                case "8":
  226.                case "9":
  227.                case "a":
  228.                case "b":
  229.                case "c":
  230.                case "d":
  231.                case "e":
  232.                case "f":
  233.                   break;
  234.                default:
  235.                   trace("WARNING: Board ID contains illegal characters: " + param1);
  236.                   return;
  237.             }
  238.             _loc3_++;
  239.          }
  240.       }
  241.       
  242.       public static function disconnect() : void
  243.       {
  244.          if(_connected || _connecting)
  245.          {
  246.             if(_clip != null)
  247.             {
  248.                if(_clip.parent != null)
  249.                {
  250.                   if(_clip.parent is Sprite)
  251.                   {
  252.                      Sprite(_clip.parent).removeChild(_clip);
  253.                      _clip = null;
  254.                   }
  255.                }
  256.             }
  257.             _connecting = _connected = false;
  258.             flush(true);
  259.             try
  260.             {
  261.                _mochiLocalConnection.close();
  262.             }
  263.             catch(error:Error)
  264.             {
  265.             }
  266.          }
  267.          if(_timer != null)
  268.          {
  269.             try
  270.             {
  271.                _timer.stop();
  272.             }
  273.             catch(error:Error)
  274.             {
  275.             }
  276.          }
  277.       }
  278.       
  279.       public static function _uo140() : void
  280.       {
  281.          _container.addEventListener(Event.ENTER_FRAME,MochiServices._ju656,false,0,true);
  282.          if(_clip != null)
  283.          {
  284.             _clip.visible = true;
  285.          }
  286.       }
  287.       
  288.       public static function _ju656(param1:Event = null) : void
  289.       {
  290.          var e:Event = param1;
  291.          if(MochiServices._cn696 != null && MochiServices._et396 != null)
  292.          {
  293.             try
  294.             {
  295.                if(MochiServices._cn696.numChildren > 1)
  296.                {
  297.                   MochiServices._cn696.setChildIndex(MochiServices._et396,MochiServices._cn696.numChildren - 1);
  298.                }
  299.             }
  300.             catch(errorObject:Error)
  301.             {
  302.                trace("Warning: Depth sort error.");
  303.                _container.removeEventListener(Event.ENTER_FRAME,MochiServices._ju656);
  304.             }
  305.          }
  306.       }
  307.       
  308.       public static function _gp767() : void
  309.       {
  310.          _container.removeEventListener(Event.ENTER_FRAME,MochiServices._ju656);
  311.       }
  312.       
  313.       public static function get id() : String
  314.       {
  315.          return _id;
  316.       }
  317.       
  318.       private static function _dm577(param1:String, param2:Object) : MovieClip
  319.       {
  320.          var _loc3_:String = null;
  321.          var _loc4_:String = null;
  322.          var _loc5_:URLRequest = null;
  323.          var _loc6_:URLVariables = null;
  324.          _loc3_ = "_mochiservices_com_" + param1;
  325.          if(_clip != null)
  326.          {
  327.             return _clip;
  328.          }
  329.          if(!MochiServices._aa325())
  330.          {
  331.             return null;
  332.          }
  333.          if(_qv105(param2).servURL)
  334.          {
  335.             _servURL = _qv105(param2).servURL;
  336.          }
  337.          _loc4_ = _servURL + _services;
  338.          if(_qv105(param2).servicesURL)
  339.          {
  340.             _loc4_ = _qv105(param2).servicesURL;
  341.          }
  342.          _listenChannelName += Math.floor(new Date().time) + "_" + Math.floor(Math.random() * 99999);
  343.          MochiServices._kp176(_loc4_);
  344.          _clip = _xk164(param2,_loc3_,10336,false);
  345.          _ci745(_clip);
  346.          _loader = new Loader();
  347.          _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,_jh244);
  348.          _loc5_ = new URLRequest(_loc4_);
  349.          _loc6_ = new URLVariables();
  350.          _loc6_.listenLC = _listenChannelName;
  351.          _loc6_.mochiad_options = param2.loaderInfo.parameters.mochiad_options;
  352.          _loc6_.api_version = _rm99();
  353.          if(widget)
  354.          {
  355.             _loc6_.widget = true;
  356.          }
  357.          _loc5_.data = _loc6_;
  358.          _loader.load(_loc5_);
  359.          _clip.addChild(_loader);
  360.          _clip._mochiservices_com = _loader;
  361.          _sendChannel = new LocalConnection();
  362.          _clip._queue = [];
  363.          _clip._nextcallbackID = 0;
  364.          _clip._callbacks = {};
  365.          _timer = new Timer(10000,1);
  366.          _timer.addEventListener(TimerEvent.TIMER,_sg198);
  367.          _timer.start();
  368.          return _clip;
  369.       }
  370.       
  371.       private static function _jh244(param1:Object) : void
  372.       {
  373.          _clip._mochiad_ctr_failed = true;
  374.          trace("MochiServices could not load.");
  375.          MochiServices.disconnect();
  376.          MochiServices.onError("IOError");
  377.       }
  378.       
  379.       public static function _nx243(param1:String, param2:String, param3:DisplayObjectContainer, param4:Function = null) : void
  380.       {
  381.          var vars:Object = null;
  382.          var avm1Click:DisplayObject = null;
  383.          var s:String = null;
  384.          var i:Number = NaN;
  385.          var x:String = null;
  386.          var req:URLRequest = null;
  387.          var loader:Loader = null;
  388.          var setURL:Function = null;
  389.          var err:Function = null;
  390.          var complete:Function = null;
  391.          var url:String = param1;
  392.          var burl:String = param2;
  393.          var btn:DisplayObjectContainer = param3;
  394.          var _ba289:Function = param4;
  395.          vars = new Object();
  396.          vars["mav"] = _rm99();
  397.          vars["swfv"] = "9";
  398.          vars["swfurl"] = btn.loaderInfo.loaderURL;
  399.          vars["fv"] = Capabilities.version;
  400.          vars["os"] = Capabilities.os;
  401.          vars["lang"] = Capabilities.language;
  402.          vars["scres"] = Capabilities.screenResolutionX + "x" + Capabilities.screenResolutionY;
  403.          s = "?";
  404.          i = 0;
  405.          for(x in vars)
  406.          {
  407.             if(i != 0)
  408.             {
  409.                s += "&";
  410.             }
  411.             i++;
  412.             s = s + x + "=" + escape(vars[x]);
  413.          }
  414.          req = new URLRequest("http://x.mochiads.com/linkping.swf");
  415.          loader = new Loader();
  416.          setURL = function(param1:String):void
  417.          {
  418.             var _loc2_:Rectangle = null;
  419.             if(avm1Click)
  420.             {
  421.                btn.removeChild(avm1Click);
  422.             }
  423.             avm1Click = _fp672(param1,_ba289);
  424.             _loc2_ = btn.getBounds(btn);
  425.             btn.addChild(avm1Click);
  426.             avm1Click.x = _loc2_.x;
  427.             avm1Click.y = _loc2_.y;
  428.             avm1Click.scaleX = 0.01 * _loc2_.width;
  429.             avm1Click.scaleY = 0.01 * _loc2_.height;
  430.          };
  431.          err = function(param1:Object):void
  432.          {
  433.             netup = false;
  434.             param1.target.removeEventListener(param1.type,arguments.callee);
  435.             setURL(burl);
  436.          };
  437.          complete = function(param1:Object):void
  438.          {
  439.             param1.target.removeEventListener(param1.type,arguments.callee);
  440.          };
  441.          if(netup)
  442.          {
  443.             setURL(url + s);
  444.          }
  445.          else
  446.          {
  447.             setURL(burl);
  448.          }
  449.          if(!(netupAttempted || _connected))
  450.          {
  451.             netupAttempted = true;
  452.             loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,err);
  453.             loader.contentLoaderInfo.addEventListener(Event.COMPLETE,complete);
  454.             loader.load(req);
  455.          }
  456.       }
  457.       
  458.       private static function _rg154() : void
  459.       {
  460.          if(!_connected)
  461.          {
  462.             trace("[SERVICES_API] connected!");
  463.             _connecting = false;
  464.             _connected = true;
  465.             _mochiLocalConnection.send(_sendChannelName,"onReceive",{"methodName":"handshakeDone"});
  466.             _mochiLocalConnection.send(_sendChannelName,"onReceive",{
  467.                "methodName":"registerGame",
  468.                "preserved":_preserved,
  469.                "id":_id,
  470.                "_cn696":_container,
  471.                "version":_rm99(),
  472.                "parentURL":_container.loaderInfo.loaderURL
  473.             });
  474.             _clip._la625 = _la625;
  475.             _clip._ti108 = _ti108;
  476.             _clip.onError = function():void
  477.             {
  478.                MochiServices.onError("IOError");
  479.             };
  480.             while(_clip._queue.length > 0)
  481.             {
  482.                _mochiLocalConnection.send(_sendChannelName,"onReceive",_clip._queue.shift());
  483.             }
  484.          }
  485.       }
  486.       
  487.       private static function handleError(param1:Object, param2:Object, param3:Object) : void
  488.       {
  489.          var args:Object = param1;
  490.          var callbackObject:Object = param2;
  491.          var callbackMethod:Object = param3;
  492.          if(args != null)
  493.          {
  494.             if(args.onError != null)
  495.             {
  496.                args.onError.apply(null,["NotConnected"]);
  497.             }
  498.             if(args.options != null && args.options.onError != null)
  499.             {
  500.                args.options.onError.apply(null,["NotConnected"]);
  501.             }
  502.          }
  503.          if(callbackMethod != null)
  504.          {
  505.             args = {};
  506.             args.error = true;
  507.             args.errorCode = "NotConnected";
  508.             if(callbackObject != null && callbackMethod is String)
  509.             {
  510.                try
  511.                {
  512.                   callbackObject[callbackMethod](args);
  513.                }
  514.                catch(error:Error)
  515.                {
  516.                }
  517.             }
  518.             else if(callbackMethod != null)
  519.             {
  520.                try
  521.                {
  522.                   callbackMethod.apply(args);
  523.                }
  524.                catch(error:Error)
  525.                {
  526.                }
  527.             }
  528.          }
  529.       }
  530.       
  531.       public static function _kp176(param1:String) : String
  532.       {
  533.          var _loc2_:String = null;
  534.          if(Security.sandboxType != "application")
  535.          {
  536.             Security.allowDomain("*");
  537.             Security.allowInsecureDomain("*");
  538.          }
  539.          if(param1.indexOf("http://") != -1)
  540.          {
  541.             _loc2_ = param1.split("/")[2].split(":")[0];
  542.             if(Security.sandboxType != "application")
  543.             {
  544.                Security.allowDomain(_loc2_);
  545.                Security.allowInsecureDomain(_loc2_);
  546.             }
  547.          }
  548.          return _loc2_;
  549.       }
  550.       
  551.       private static function _fp672(param1:String, param2:Function) : MovieClip
  552.       {
  553.          var _loc3_:Array = null;
  554.          var _loc4_:int = 0;
  555.          var _loc5_:Array = null;
  556.          var _loc6_:Array = null;
  557.          var _loc7_:MovieClip = null;
  558.          var _loc8_:LocalConnection = null;
  559.          var _loc9_:String = null;
  560.          var _loc10_:ByteArray = null;
  561.          var _loc11_:ByteArray = null;
  562.          var _loc12_:uint = 0;
  563.          var _loc13_:uint = 0;
  564.          var _loc14_:Loader = null;
  565.          _loc3_ = [150,21,0,7,1,0,0,0,0,98,116,110,0,7,2,0,0,0,0,116,104,105,115,0,28,150,22,0,0,99,114,101,97,116,101,69,109,112,116,121,77,111,118,105,101,67,108,105,112,0,82,135,1,0,0,23,150,13,0,4,0,0,111,110,82,101,108,101,97,115,101,0,142,8,0,0,0,0,2,42,0,114,0,150,17,0,0,32,0,7,1,0,0,0,8,0,0,115,112,108,105,116,0,82,135,1,0,1,23,150,7,0,4,1,7,0,0,0,0,78,150,8,0,0,95,98,108,97,110,107,0,154,1,0,0,150,7,0,0,99,108,105,99,107,0,150,7,0,4,1,7,1,0,0,0,78,150,27,0,7,2,0,0,0,7,0,0,0,0,0,76,111,99,97,108,67,111,110,110,101,99,116,105,111,110,0,64,150,6,0,0,115,101,110,100,0,82,79,150,15,0,4,0,0,95,97,108,112,104,97,0,7,0,0,0,0,79,150,23,0,7,255,0,255,0,7,1,0,0,0,4,0,0,98,101,103,105,110,70,105,108,108,0,82,23,150,25,0,7,0,0,0,0,7,0,0,0,0,7,2,0,0,0,4,0,0,109,111,118,101,84,111,0,82,23,150,25,0,7,100,0,0,0,7,0,0,0,0,7,2,0,0,0,4,0,0,108,105,110,101,84,111,0,82,23,150,25,0,7,100,0,0,0,7,100,0,0,0,7,2,0,0,0,4,0,0,108,105,110,101,84,111,0,82,23,150,25,0,7,0,0,0,0,7,100,0,0,0,7,2,0,0,0,4,0,0,108,105,110
  566.          ,101,84,111,0,82,23,150,25,0,7,0,0,0,0,7,0,0,0,0,7,2,0,0,0,4,0,0,108,105,110,101,84,111,0,82,23,150,16,0,7,0,0,0,0,4,0,0,101,110,100,70,105,108,108,0,82,23];
  567.          _loc5_ = [104,0,31,64,0,7,208,0,0,12,1,0,67,2,255,255,255,63,3];
  568.          _loc6_ = [0,64,0,0,0];
  569.          _loc7_ = new MovieClip();
  570.          _loc8_ = new LocalConnection();
  571.          _loc9_ = "_click_" + Math.floor(Math.random() * 999999) + "_" + Math.floor(new Date().time);
  572.          _loc8_ = new LocalConnection();
  573.          _loc7_.lc = _loc8_;
  574.          _loc7_.click = param2;
  575.          _loc8_.client = _loc7_;
  576.          _loc8_.connect(_loc9_);
  577.          _loc10_ = new ByteArray();
  578.          _loc11_ = new ByteArray();
  579.          _loc11_.endian = Endian.LITTLE_ENDIAN;
  580.          _loc11_.writeShort(1);
  581.          _loc11_.writeUTFBytes(param1 + " " + _loc9_);
  582.          _loc11_.writeByte(0);
  583.          _loc12_ = uint(_loc3_.length + _loc11_.length + 4);
  584.          _loc13_ = uint(_loc12_ + 35);
  585.          _loc10_.endian = Endian.LITTLE_ENDIAN;
  586.          _loc10_.writeUTFBytes("FWS");
  587.          _loc10_.writeByte(8);
  588.          _loc10_.writeUnsignedInt(_loc13_);
  589.          for each(_loc4_ in _loc5_)
  590.          {
  591.             _loc10_.writeByte(_loc4_);
  592.          }
  593.          _loc10_.writeUnsignedInt(_loc12_);
  594.          _loc10_.writeByte(136);
  595.          _loc10_.writeShort(_loc11_.length);
  596.          _loc10_.writeBytes(_loc11_);
  597.          for each(_loc4_ in _loc3_)
  598.          {
  599.             _loc10_.writeByte(_loc4_);
  600.          }
  601.          for each(_loc4_ in _loc6_)
  602.          {
  603.             _loc10_.writeByte(_loc4_);
  604.          }
  605.          _loc14_ = new Loader();
  606.          _loc14_.loadBytes(_loc10_);
  607.          _loc7_.addChild(_loc14_);
  608.          return _loc7_;
  609.       }
  610.       
  611.       private static function _qv105(param1:Object) : Object
  612.       {
  613.          var _loc2_:Object = null;
  614.          var _loc3_:String = null;
  615.          var _loc4_:Array = null;
  616.          var _loc5_:Number = NaN;
  617.          var _loc6_:Array = null;
  618.          _loc2_ = {};
  619.          _loc3_ = param1.loaderInfo.parameters.mochiad_options;
  620.          if(_loc3_)
  621.          {
  622.             _loc4_ = _loc3_.split("&");
  623.             _loc5_ = 0;
  624.             while(_loc5_ < _loc4_.length)
  625.             {
  626.                _loc6_ = _loc4_[_loc5_].split("=");
  627.                _loc2_[unescape(_loc6_[0])] = unescape(_loc6_[1]);
  628.                _loc5_++;
  629.             }
  630.          }
  631.          return _loc2_;
  632.       }
  633.       
  634.       public static function _sg198(param1:TimerEvent) : void
  635.       {
  636.          if(!_connected)
  637.          {
  638.             _clip._mochiad_ctr_failed = true;
  639.             trace("MochiServices could not load. (timeout)");
  640.             MochiServices.disconnect();
  641.             MochiServices.onError("IOError");
  642.          }
  643.       }
  644.       
  645.       private static function _ci745(param1:Object) : void
  646.       {
  647.          var loader:Loader = null;
  648.          var mochiLCURL:String = null;
  649.          var req:URLRequest = null;
  650.          var complete:Function = null;
  651.          var _cn696:Object = param1;
  652.          loader = new Loader();
  653.          mochiLCURL = _servURL + _mochiLC;
  654.          req = new URLRequest(mochiLCURL);
  655.          complete = function(param1:Object):void
  656.          {
  657.             _mochiLocalConnection = MovieClip(loader.content);
  658.             _xl60();
  659.          };
  660.          loader.contentLoaderInfo.addEventListener(Event.COMPLETE,complete);
  661.          loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,_jh244);
  662.          loader.load(req);
  663.          _cn696.addChild(loader);
  664.       }
  665.       
  666.       public static function _hp652(param1:Object = null, param2:Boolean = true) : void
  667.       {
  668.          if(param1 != null)
  669.          {
  670.             if(param1 is Sprite)
  671.             {
  672.                _container = param1;
  673.             }
  674.          }
  675.          if(param2)
  676.          {
  677.             if(_container is Sprite)
  678.             {
  679.                Sprite(_container).addChild(_clip);
  680.             }
  681.          }
  682.       }
  683.       
  684.       public static function _xk164(param1:Object, param2:String, param3:Number, param4:Boolean = true) : MovieClip
  685.       {
  686.          var mc:MovieClip = null;
  687.          var parent:Object = param1;
  688.          var name:String = param2;
  689.          var depth:Number = param3;
  690.          var doAdd:Boolean = param4;
  691.          mc = new MovieClip();
  692.          if(doAdd)
  693.          {
  694.             if(false && Boolean(depth))
  695.             {
  696.                parent.addChildAt(mc,depth);
  697.             }
  698.             else
  699.             {
  700.                parent.addChild(mc);
  701.             }
  702.          }
  703.          try
  704.          {
  705.             parent[name] = mc;
  706.          }
  707.          catch(e:Error)
  708.          {
  709.             throw new Error("MochiServices requires a clip that is an instance of a dynamic class.  If your class extends Sprite or MovieClip, you must make it dynamic.");
  710.          }
  711.          mc["_name"] = name;
  712.          return mc;
  713.       }
  714.       
  715.       private static function _la625(param1:Object) : void
  716.       {
  717.          var cb:String = null;
  718.          var cblst:Object = null;
  719.          var method:* = undefined;
  720.          var methodName:String = null;
  721.          var obj:Object = null;
  722.          var pkg:Object = param1;
  723.          cb = pkg.callbackID;
  724.          cblst = _clip._callbacks[cb];
  725.          if(!cblst)
  726.          {
  727.             return;
  728.          }
  729.          method = cblst.callbackMethod;
  730.          methodName = "";
  731.          obj = cblst.callbackObject;
  732.          if(Boolean(obj) && typeof method == "string")
  733.          {
  734.             methodName = method;
  735.             if(obj[method] != null)
  736.             {
  737.                method = obj[method];
  738.             }
  739.             else
  740.             {
  741.                trace("Error: Method  " + method + " does not exist.");
  742.             }
  743.          }
  744.          if(method != undefined)
  745.          {
  746.             try
  747.             {
  748.                method.apply(obj,pkg.args);
  749.             }
  750.             catch(error:Error)
  751.             {
  752.                trace("Error invoking callback method \'" + methodName + "\': " + error.toString());
  753.             }
  754.          }
  755.          else if(obj != null)
  756.          {
  757.             try
  758.             {
  759.                obj(pkg.args);
  760.             }
  761.             catch(error:Error)
  762.             {
  763.                trace("Error invoking method on object: " + error.toString());
  764.             }
  765.          }
  766.          delete _clip._callbacks[cb];
  767.       }
  768.       
  769.       public static function connect(param1:String, param2:Object, param3:Object = null) : void
  770.       {
  771.          var id:String = param1;
  772.          var _cn696:Object = param2;
  773.          var onError:Object = param3;
  774.          _cl199(id,false);
  775.          if(_cn696 is DisplayObject)
  776.          {
  777.             if(!_connected && _clip == null)
  778.             {
  779.                trace("MochiServices Connecting...");
  780.                _connecting = true;
  781.                init(id,_cn696);
  782.             }
  783.          }
  784.          else
  785.          {
  786.             trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage.");
  787.          }
  788.          if(onError != null)
  789.          {
  790.             MochiServices.onError = onError;
  791.          }
  792.          else if(MochiServices.onError == null)
  793.          {
  794.             MochiServices.onError = function(param1:String):void
  795.             {
  796.                trace(param1);
  797.             };
  798.          }
  799.       }
  800.       
  801.       public static function set _ty219(param1:String) : void
  802.       {
  803.          if(param1 != null)
  804.          {
  805.             if(param1.length > 3)
  806.             {
  807.                _sendChannelName = param1 + "_fromgame";
  808.                _rg154();
  809.             }
  810.          }
  811.       }
  812.       
  813.       private static function _ti108(param1:Object) : void
  814.       {
  815.          var _loc2_:String = null;
  816.          var _loc3_:String = null;
  817.          _loc2_ = param1.target;
  818.          _loc3_ = param1.event;
  819.          switch(_loc2_)
  820.          {
  821.             case "events":
  822.                MochiEvents.triggerEvent(param1.event,param1.args);
  823.                break;
  824.             case "coins":
  825.                MochiCoins.triggerEvent(param1.event,param1.args);
  826.                break;
  827.             case "sync":
  828.                servicesSync.triggerEvent(param1.event,param1.args);
  829.          }
  830.       }
  831.    }
  832. }
  833.  
  834.